/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.jomijushi.fid.servicios;

import com.jomijushi.fid.dao.RolTrabajadorImplementsDAO;
import com.jomijushi.fid.dao.RolTrabajadorInterfazDAO;
import com.jomijushi.fid.dominio.FidRolTrabajador;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceContext;

/** 
 *
 * @author Jorge Valverde Rebaza
 */
public class RolTrabajadorImplementsService implements RolTrabajadorInterfazService {

    private RolTrabajadorInterfazDAO rolDAO = new RolTrabajadorImplementsDAO();
    private EntityManagerFactory emf;

    @PersistenceContext
    public void setEntityManagerFactory(EntityManagerFactory emf) {
        this.emf = emf;
    }


    // Funcion para insertar Rol
    public void crearRolTrabajador(FidRolTrabajador rol) {
        EntityManager em = emf.createEntityManager();
        em.getTransaction().begin();
        rolDAO.setEntityManager(em);
        rolDAO.persist(rol);
        em.getTransaction().commit();
        em.close();
    }

    
    public void editarRolTrabajador(FidRolTrabajador rol) {
        EntityManager em = emf.createEntityManager();
        em.getTransaction().begin();
        rolDAO.setEntityManager(em);
        rolDAO.merge(rol);
        em.getTransaction().commit();
        em.close();
    }

    
    public void eliminarRolTrabajador(int id) {
        EntityManager em = emf.createEntityManager();
        em.getTransaction().begin();
        rolDAO.setEntityManager(em);
        FidRolTrabajador fidRolTrabajador = null;
        fidRolTrabajador = em.getReference(FidRolTrabajador.class, id);
        fidRolTrabajador.getId();
        rolDAO.remove(fidRolTrabajador);        
        em.getTransaction().commit();
        em.close();
    }

    public FidRolTrabajador buscarRolTrabajador(int id)
    {
        EntityManager em = emf.createEntityManager();        
        try {
            rolDAO.setEntityManager(em);
            FidRolTrabajador frt = null;
            frt = rolDAO.findById(id);
            return frt;
        } finally {
            em.close();
        }
    }

    public List<FidRolTrabajador> Listar(boolean a, String jpql, boolean b, int c, int d)
    {
        EntityManager em = emf.createEntityManager();
        try {
            rolDAO.setEntityManager(em);
            List<FidRolTrabajador> lst = rolDAO.listarRolTrabajador(a, jpql, b, c, d);
            return lst;
        } finally {
            em.close();
        }        
    }
}
